﻿@using Kendo.Mvc.UI;

@{
    ViewBag.Title = "Thí sinh";
}
@{
    AjaxOptions aj = new AjaxOptions
    {
        InsertionMode = InsertionMode.Replace,
        UpdateTargetId = "content-main",
        LoadingElementId = "loading-icon",
        OnFailure = "AjaxFailure",
        OnBegin = "AjaxBegin",
        OnComplete = "AjaxComplete"
    };
}
<section class="panel">
    <header class="panel-heading">
        <h4 style="margin:0">Danh sách Thí sinh</h4>
    </header>
    <div class="panel-body">

        <div class="table-responsive">
            @( Html.Kendo().Grid<TS2015.Models.TbThiSinh>()
                .Name("griddata")
                .Pageable(page => page
                        .ButtonCount(7)
                        .Info(true)
                        .Refresh(true)
                            .Messages(mess => mess
                                     .Display("{0}-{1} của {2} bản ghi.")
                                            .Empty("Không có dữ liệu")
                                            .Refresh("Làm mới")
                                            .First("Trang đầu tiên")
                                            .Last("Trang cuối cùng")
                                            .Next("Trang tiếp")
                                            .Previous("Trang trước")
                                      )
                                     .Input(true)
                                            .Messages(mess =>
                                            {
                                                mess.Of("của {0}");
                                                mess.Page("Trang");
                                            })

                                )
                            .Columns(columns =>
                                {
                                    //columns.ClientTemplate("<input type='checkbox' #= CheckboxColumn? checked='checked': checked='' # class='chkbx' />");
                                    columns.Bound(p => p.MaTS).Width(25);
                                    columns.Bound(p => p.FullName);
                                    //columns.Bound(p => p.HoDem + p => p.Ten).Title("Họ và tên");
                                    //columns.Bound(p => p.Ten);
                                    columns.Bound(p => p.GioiTinh).Hidden();
                                    columns.Bound(p => p.NgaySinh);
                                    // Tham chiếu đến khóa ngoại
                                    columns.ForeignKey(p => p.MaTruong, (System.Collections.IEnumerable)ViewBag.Truong, "MaTruong", "TenTruong")
                                    .Title("Trường").Hidden();
                                    columns.ForeignKey(p => p.MaKhuVuc, (System.Collections.IEnumerable)ViewBag.KhuVuc, "MaKhuVuc", "TenKhuVuc")
                                    .Title("Khu vực").Hidden();
                                    columns.ForeignKey(p => p.MaXepLoaiHS, (System.Collections.IEnumerable)ViewBag.XepLoaiHS, "MaXepLoaiHS", "TenXepLoai")
                                    .Title("Xếp loại").Hidden();
                                    columns.Bound(p => p.Email).Hidden();
                                    columns.Bound(p => p.SoDienThoai).Hidden();
                                    columns.ForeignKey(p => p.MaDanToc, (System.Collections.IEnumerable)ViewBag.DanToc, "MaDanToc", "TenDanToc")
                                    .Title("Dân tộc").Hidden();
                                    columns.Bound(p => p.QueQuan).Hidden();
                                    columns.Bound(p => p.DiaChi).Hidden();
                                    columns.Bound(p => p.CMND);
                                    columns.Bound(p => p.CoQuanCongTac).Hidden();
                                    columns.Bound(p => p.DiemLop10).Hidden();
                                    columns.Bound(p => p.DiemLop11).Hidden();
                                    columns.Bound(p => p.DiemLop12).Hidden();
                                    columns.Bound(p => p.DiemTBTHPT).Hidden();
                                    columns.Bound(p => p.DiemTBTN).Hidden();
                                    columns.Bound(p => p.NamTotNghiep).Hidden();
                                    columns.Bound(p => p.NoiTotNghiep).Hidden();
                                    columns.Bound(p => p.Anh).Hidden();
                                    columns.ForeignKey(p => p.MaDoiTuong, (System.Collections.IEnumerable)ViewBag.DoiTuongUuTien, "MaDoiTuong", "TenDoiTuong")
                                    .Title("Dối tượng").Hidden();
                                    columns.ForeignKey(p => p.MaKhoiThi, (System.Collections.IEnumerable)ViewBag.KhoiThi, "MaKhoiThi", "TenKhoiThi")
                                    .Title("Khối thi");
                                    columns.ForeignKey(p => p.MaHeDaoTao, (System.Collections.IEnumerable)ViewBag.HeDaoTao, "MaHeDaoTao", "TenHeDaoTao")
                                    .Title("Hệ đào tạo");
                                    columns.ForeignKey(p => p.MaChuyenNganh, (System.Collections.IEnumerable)ViewBag.ChuyenNganh, "MaChuyenNganh", "TenChuyenNganh")
                                    .Title("ChuyenNganh").Hidden();
                                    columns.Bound(p => p.TrangThaiDongTien);
                                    columns.Bound(p => p.TrangThaiDangKi);
                                    columns.Bound(p => p.TrangThaiHoanThanh);
                                    columns.Bound(p => p.NgayDangKi).Hidden();
                                    columns.Bound(p => p.NgayDongTien).Hidden();
                                    columns.Bound(p => p.NgayHoanThanhDK).Hidden();
                                    columns.Bound(p => p.LanSuaCuoi).Hidden();
                                    columns.Template(@<text>Sửa</text>).ClientTemplate("<a class='k-button k-button-icontext' href='" + Url.Action("PhieuDangKy", "CandidateManagement") + "/#=MaTS#'><span class='k-icon k-edit'></span>Sửa</a>").Title("Sửa");
                                    columns.Command(command =>
                                    {
                                        //command.Edit().Text("Sửa").UpdateText("Cập nhật");
                                        command.Destroy().Text("Xóa");
                                    })
                                        .Title("Xóa");
                                })

                    // Sửa kiểu popup
                    .Editable(editable =>
                    {
                        //editable.Mode(GridEditMode.PopUp).TemplateName("CommuneEditor");
                        editable.ConfirmDelete("Bạn có muốn xóa?");
                        editable.Window(window =>
                        {
                            //window.Width(450);

                            window.Title("Thêm/sửa dữ liệu");
                            window.Animation(false);
                        });

                        editable.DisplayDeleteConfirmation("Bạn có muốn xóa?");
                    })
                    .Sortable()    // Cho phép sắp xếp dữ liệu
                    // Cho phép lọc dữ liệu
                    .Filterable(filterable => filterable
                            .Messages(mess => mess
                                .And("Và")
                                .Clear("Xóa")
                                .Filter("Lọc")
                                .Info("Điều kiện lọc tìm kiếm")

                                )
                                .Extra(false)

                            .Operators(operators => operators
                                .ForString(str => str.Clear()
                                    .StartsWith("Bắt đầu với")
                                    .IsEqualTo("Đúng bằng")
                                    .IsNotEqualTo("Không bao gồm")
                                )
                                .ForNumber(num => num
                                        .Clear()
                                        .IsGreaterThan("Lớn hơn")
                                        .IsEqualTo("Bằng")
                                        .IsNotEqualTo("Nhỏ hơn")
                    )))

                // Cài đặt nguồn dữ liệu
                .DataSource(dataSource => dataSource
                        .Ajax()   // Mọi thao tác thực hiện thông qua Ajax
                        .ServerOperation(false) // Ko cho gửi request bằng cách load lại trang mà thông qua Ajax

                        .PageSize(10)   // Số row hiển thị trên Grid
                        .Model(model =>
                            {
                                model.Id(p => p.MaTS);  // Chỉ ra khóa của Grid
                                model.Field(p => p.MaTS).Editable(false);
                                //model.Field(p => p.MaKhoa).DefaultValue(1);
                            }
                            )
                        .Sort(item =>
                        {
                            // Mặc định khi load dữ liệu lên Grid sẽ sắp xếp giảm theo Id
                            item.Add(data => data.MaTS).Descending();
                        })
                    // Cài đặt các sự kiện khi thay đổi dữ liệu
                        .Events(events =>
                        {
                            events.Error("onError");
                            //events.Change("onRequestStart");
                            //events.Sync("sync_handler");
                            //events.Push("Success");
                            //events.Change("Success");
                            events.RequestEnd("onRequestEnd");
                            //events.RequestStart("onRequestStart");
                        })
                    // Gán Action khi thêm dữ liệu
                                    //.Create(update => update.Action( "Default", new { controller = "Common", action = "PhieuDangKy", Layout = "" }, aj))
                                //.Create(update => update.Action("EditingPopup_CreateCandidateList", "CandidateManagement"))
                    // Gán Action khi đổ dữ liệu lên Grid
                            .Read(read => read.Action("EditingPopup_ReadCandidateList", "CandidateManagement"))
                // Sửa
                            .Update(update => update.Action("EditingPopup_UpdateCandidateList", "CandidateManagement"))
                // Xóa
                            .Destroy(update => update.Action("EditingPopup_DestroyCandidateList", "CandidateManagement"))
                )
                    // Cài đặt thanh Menu bên trên Grid
                .ToolBar(toolbar =>
                    {
                        //toolbar.Custom().Text("Xuất PDF").Name("exportPDF");
                        toolbar.Template(@<text>
                            <div class="toolbar" style="float:right">                  
                                @Ajax.ActionLink("Thêm mới", "PhieuDangKy", "CandidateManagement", aj, new { @class = "btn btn-danger" })                                                           
                                <input type="file" name="Import" />
                                <button type="submit" id="ImportExcel" class="btn btn-danger">Lưu</button>
                            </div>
                            
                            
                        </text>);
                    })
                .Events(events =>
                {
                    //events.Change("onEdit");
                    //events.Cancel("onEdit");
                    events.Edit("onEdit");
                    //events.ColumnLock
                })
                    //.ClientDetailTemplateId("client-template")
            )
        </div>
    </div>
</section>

@Html.Partial("_PopupInsert")

